package ywpt.service.config;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import ywpt.model.Department;
import ywpt.model.PositionInfo;

public interface PositionService {

	public abstract PositionInfo getPositionInfoById(Long id);

	public abstract int getPositionInfoCountByCriteria(DetachedCriteria query);

	public abstract List<PositionInfo> getPositionInfos(
			DetachedCriteria query, int pageSize, int startIndex);

	public abstract String createPositionCode();

	public abstract void savePositionInfo(PositionInfo positionInfo, Long departId);

	public abstract void updatePositionInfo(PositionInfo positionInfo, Long departId);

	public abstract void removePositionInfo(Long id);

	public abstract List<PositionInfo> getPositionInfos();
	
	public abstract List<PositionInfo> getPositionInfos(DetachedCriteria query);
	
	public abstract List<PositionInfo> getPositionsByPositionName(String positionName,Long departId, int start,
			int size);
	
	public abstract int getPositionsCountByName(String positionName,Long departId);
	
	public abstract List<Department> getDepartments();

}
